package flex.cc.common.utils;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

/**
 * 时间处理类
 *
 * @author Administrator
 */
public class DateUtil {

    public static final String getCurrentDate(String pattern) {
        SimpleDateFormat df = new SimpleDateFormat(pattern, Locale.CHINA);
        return df.format(new Date());
    }

    /**
     * 得到yyMMdd格式的日期字符串
     *
     * @return
     */
    public static String getyyMMddDate() throws Exception {
        SimpleDateFormat format = new SimpleDateFormat("yyMMdd");
        return format.format(new Date());
    }

    /**
     * 传入日期格式，将字符串类型的日期转换为Date类型
     *
     * @param str
     * @param formater
     * @return
     * @throws Exception
     */
    public static Date parseStringToDate(String str, String formater) throws Exception {
        SimpleDateFormat format = new SimpleDateFormat(formater);
        return format.parse(str);
    }

    /**
     * 传入日期格式，将Date类型日期转换为字符串类型
     *
     * @param date
     * @param formater
     * @return
     */
    public static String getStrDate(Date date, String formater) throws Exception {
        SimpleDateFormat format = new SimpleDateFormat(formater);
        return format.format(date);
    }

    /**
     * 获取与当前时间差 increment 天的时间
     *
     * @param increment 差值
     * @return 差值时间
     */
    public static Date getDay(int increment) {
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DAY_OF_MONTH, increment);
        return calendar.getTime();
    }

    /**
     * 清除日期的时分秒
     *
     * @param date 需要清除的时间
     * @return 清除后的时间
     */
    public static Date cleanTime(Date date) {
        Calendar cal1 = Calendar.getInstance();
        cal1.setTime(date);
        // 将时分秒,毫秒域清零
        cal1.set(Calendar.HOUR_OF_DAY, 0);
        cal1.set(Calendar.MINUTE, 0);
        cal1.set(Calendar.SECOND, 0);
        cal1.set(Calendar.MILLISECOND, 0);
        return cal1.getTime();
    }
    
    /**
	*
	* @author WANGCONG
	* 2021年12月15日下午4:13:41
	* @desc 计算两个时间的秒差
	*/
	public static int getIntervalSecond(String startDate, String endDate) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date start = sdf.parse(startDate);
        Date end = sdf.parse(endDate);
        long millisecond = end.getTime() - start.getTime();
        long seconds = millisecond/1000;
        int second = Integer.parseInt(String.valueOf(seconds)); 
        return second;
     }
	
	/**
	*
	* @author WANGCONG
	* 2021年12月23日下午18:50:06
	* @desc 计算两个时间的秒差
	*/
	public static int getDateSecond(Date start, Date end) throws Exception {
        long millisecond = end.getTime() - start.getTime();
        long seconds = millisecond/1000;
        int second = Integer.parseInt(String.valueOf(seconds)); 
        return second;
     }
}
